package com.yidu.service.impl;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.yidu.action.vo.StatisticsVo;
import com.yidu.common.Tools;
import com.yidu.dao.ListenPurchaseDetailMapper;
import com.yidu.dao.ListenSellDetailMapper;
import com.yidu.dao.ListenSellMapper;
import com.yidu.domain.ListenSellDetail;
import com.yidu.service.ListenSellDetailService;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author jiangyu
 * @since 2018-11-27
 */
@Service
public class ListenSellDetailServiceImpl implements ListenSellDetailService {

	@Resource
	private ListenSellDetailMapper dao;
	
	@Resource
	private ListenPurchaseDetailMapper pdDao;
	
	
	@Override
	public List<ListenSellDetail> selectAll(Map<String, Object> map) {
		
		return dao.selectAll(map);
	}

	@Override
	public int selectAllCount(Map<String, Object> map) {
		
		return dao.selectAllCount(map);
	}

	@Override
	public List<ListenSellDetail> findByDetails(String sellId) {
		return dao.findByDetails(sellId);
	}

	@Override
	public int deleteById(String Id) {
		return dao.deleteByPrimaryKey(Id);
	}
	
	/**
     * @title 总公司总销量前八统计图
     * @return List
     * @author 江宇
     * @dateTime 2019年1月2日
     * @versions 1.0
     */
	@Override
	public List<StatisticsVo> selectStatistics() {
		Map<String, Object> map=new HashMap<>();
		map.put("start", 0);
		map.put("end", 8);
		return dao.selectStatistics(map);
	}
	
	 /**
     * @title 总公司月销量前三排名统计图
     * @return List
     * @author 江宇
     * @dateTime 2019年1月2日
     * @versions 1.0
     */
	@Override
	public List<StatisticsVo> selectYearStatistics(String year) {
		//定义月份数组
		String month[]= {"01","02","03","04","05","06","07","08","09","10","11","12"};
		Map<String, Object> map=new HashMap<>();
		map.put("start", 0);
		map.put("end", 3);
		//调用查询总公司总销量前三排名
		List<StatisticsVo> sList=dao.selectStatistics(map);
		
		//创建统计图VoList集合
		List<StatisticsVo> sLists=new ArrayList<>();
		//循环查询的总公司月销量前三排名List集合
		for (StatisticsVo statisticsVo : sList) {
			//定义名称
			String name="";
			//定义值
			String value="";
			String blooean="1";
			//创建统计图Vo类对象
			StatisticsVo sVo=new StatisticsVo();
			Map<String, Object> maps=new HashMap<>();
			//乐器ID赋值
			maps.put("muId", statisticsVo.getMuId());
			//如果年份不为空赋值
			if(!Tools.isEmpty(year)) {
				maps.put("year", year);
			}
			//调用查询总公司月销量前三排名的方法
			List<StatisticsVo> list=dao.selectYearStatistics(maps);
			
				//循环月份数组
				for (int i = 0; i < month.length; i++) {
					//循环查询的总公司月销量前三List集合
					for (StatisticsVo statisticsVos : list) {
						//名称赋值
						name=statisticsVo.getName();
					//如果查询出的月份和月份数组里的月份相等
					if(month[i].equals(statisticsVos.getMonths())) {
						//值赋值
						value+=statisticsVos.getValue()+",";
						blooean="1";
						break;
					}else {
						blooean="2";
					}
				}
				
				//如果blooean==2
				if(blooean.equals("2")) {
					value+="0"+",";
				}
				
			}
			//名称赋值
			sVo.setName(name);
			//值赋值
			sVo.setValue(value);
			sLists.add(sVo);
		}
		
		return sLists;
	}
	
	/**
     * @title 查询总公司月季销售金额
     * @param Map
     * @return List
     * @author 江宇
     * @dateTime 2019年1月3日
     * @versions 1.0
     */
	@Override
	public List<StatisticsVo> selectMonthsPriceStatistics(String year) {
		//定义月份数组
		String month[]= {"01","02","03","04","05","06","07","08","09","10","11","12"};
		//创建统计图VoList集合
		List<StatisticsVo> sList=new ArrayList<>();
			//定义值
			String value="";
			String blooean="1";
		
			Map<String, Object> map=new HashMap<>();
			
			//如果年份不为空赋值
			if(!Tools.isEmpty(year)) {
				map.put("year", year);
			}
			//调用查询查询总公司月季销售金额的方法
			List<StatisticsVo> list=dao.selectMonthsPriceStatistics(map);
			//调用查询查询一年每个月的材料销量的方法
			List<StatisticsVo> lists=pdDao.selectMonthsPriceStatistics(map);
			
				//循环月份数组
				for (int i = 0; i < month.length; i++) {
					//循环查询的总公司月季销售金额List集合
					for (StatisticsVo statisticsVo : list) {
					//如果查询出的月份和月份数组里的月份相等
					if(month[i].equals(statisticsVo.getMonths())) {
						value+=statisticsVo.getValue()+",";
						blooean="1";
						break;
					}else {
						blooean="2";
					}
				}
				//如果blooean==2	
				if(blooean.equals("2")) {
					value+="0"+",";
				}
				
			}
			//创建统计图Vo类对象
			StatisticsVo sVo=new StatisticsVo();
			//名称赋值
			sVo.setName("销售乐器月季总额");
			//值赋值
			sVo.setValue(value);
			
			sList.add(sVo);
			
			
			value="";
			String blooeans="1";
		
				//循环月份数组
				for (int i = 0; i < month.length; i++) {
					//循环查询的查询一年每个月的材料销量List集合
					for (StatisticsVo statisticsVo : lists) {
					//如果查询出的月份和月份数组里的月份相等
					if(month[i].equals(statisticsVo.getMonths())) {
						value+=statisticsVo.getValue()+",";
						blooeans="1";
						break;
					}else {
						blooeans="2";
					}
				}
					
				//如果blooean==2		
				if(blooeans.equals("2")) {
					value+="0"+",";
				}
				
			}
				
			//创建统计图Vo类对象
			StatisticsVo sVos=new StatisticsVo();
			//名称赋值
			sVos.setName("采购材料月季总额");
			//值赋值
			sVos.setValue(value);
			sList.add(sVos);
		return sList;
	}
	
	/**
     * @title 乐器总销售金额前五排名统计图
     * @return List
     * @author 江宇
     * @dateTime 2019年1月2日
     * @versions 1.0
     */
	@Override
	public List<StatisticsVo> selectSumPriceStatistics(String year) {
		Map<String, Object> map=new HashMap<>();
		map.put("start", 0);
		map.put("end", 5);
		//如果年份不为空赋值
		if(!Tools.isEmpty(year)) {
			map.put("year", year);
		}
		
		return dao.selectSumPriceStatistics(map);
	}

}
